package com.onedec.entity;

import java.util.ArrayList;
import java.util.List;

public class OnedecMaterialExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public OnedecMaterialExample() {
        oredCriteria = new ArrayList<>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andMaterialIdIsNull() {
            addCriterion("material_id is null");
            return (Criteria) this;
        }

        public Criteria andMaterialIdIsNotNull() {
            addCriterion("material_id is not null");
            return (Criteria) this;
        }

        public Criteria andMaterialIdEqualTo(Integer value) {
            addCriterion("material_id =", value, "materialId");
            return (Criteria) this;
        }

        public Criteria andMaterialIdNotEqualTo(Integer value) {
            addCriterion("material_id <>", value, "materialId");
            return (Criteria) this;
        }

        public Criteria andMaterialIdGreaterThan(Integer value) {
            addCriterion("material_id >", value, "materialId");
            return (Criteria) this;
        }

        public Criteria andMaterialIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("material_id >=", value, "materialId");
            return (Criteria) this;
        }

        public Criteria andMaterialIdLessThan(Integer value) {
            addCriterion("material_id <", value, "materialId");
            return (Criteria) this;
        }

        public Criteria andMaterialIdLessThanOrEqualTo(Integer value) {
            addCriterion("material_id <=", value, "materialId");
            return (Criteria) this;
        }

        public Criteria andMaterialIdIn(List<Integer> values) {
            addCriterion("material_id in", values, "materialId");
            return (Criteria) this;
        }

        public Criteria andMaterialIdNotIn(List<Integer> values) {
            addCriterion("material_id not in", values, "materialId");
            return (Criteria) this;
        }

        public Criteria andMaterialIdBetween(Integer value1, Integer value2) {
            addCriterion("material_id between", value1, value2, "materialId");
            return (Criteria) this;
        }

        public Criteria andMaterialIdNotBetween(Integer value1, Integer value2) {
            addCriterion("material_id not between", value1, value2, "materialId");
            return (Criteria) this;
        }

        public Criteria andMaterialNameIsNull() {
            addCriterion("material_name is null");
            return (Criteria) this;
        }

        public Criteria andMaterialNameIsNotNull() {
            addCriterion("material_name is not null");
            return (Criteria) this;
        }

        public Criteria andMaterialNameEqualTo(String value) {
            addCriterion("material_name =", value, "materialName");
            return (Criteria) this;
        }

        public Criteria andMaterialNameNotEqualTo(String value) {
            addCriterion("material_name <>", value, "materialName");
            return (Criteria) this;
        }

        public Criteria andMaterialNameGreaterThan(String value) {
            addCriterion("material_name >", value, "materialName");
            return (Criteria) this;
        }

        public Criteria andMaterialNameGreaterThanOrEqualTo(String value) {
            addCriterion("material_name >=", value, "materialName");
            return (Criteria) this;
        }

        public Criteria andMaterialNameLessThan(String value) {
            addCriterion("material_name <", value, "materialName");
            return (Criteria) this;
        }

        public Criteria andMaterialNameLessThanOrEqualTo(String value) {
            addCriterion("material_name <=", value, "materialName");
            return (Criteria) this;
        }

        public Criteria andMaterialNameLike(String value) {
            addCriterion("material_name like", value, "materialName");
            return (Criteria) this;
        }

        public Criteria andMaterialNameNotLike(String value) {
            addCriterion("material_name not like", value, "materialName");
            return (Criteria) this;
        }

        public Criteria andMaterialNameIn(List<String> values) {
            addCriterion("material_name in", values, "materialName");
            return (Criteria) this;
        }

        public Criteria andMaterialNameNotIn(List<String> values) {
            addCriterion("material_name not in", values, "materialName");
            return (Criteria) this;
        }

        public Criteria andMaterialNameBetween(String value1, String value2) {
            addCriterion("material_name between", value1, value2, "materialName");
            return (Criteria) this;
        }

        public Criteria andMaterialNameNotBetween(String value1, String value2) {
            addCriterion("material_name not between", value1, value2, "materialName");
            return (Criteria) this;
        }

        public Criteria andMaterialModelIsNull() {
            addCriterion("material_model is null");
            return (Criteria) this;
        }

        public Criteria andMaterialModelIsNotNull() {
            addCriterion("material_model is not null");
            return (Criteria) this;
        }

        public Criteria andMaterialModelEqualTo(String value) {
            addCriterion("material_model =", value, "materialModel");
            return (Criteria) this;
        }

        public Criteria andMaterialModelNotEqualTo(String value) {
            addCriterion("material_model <>", value, "materialModel");
            return (Criteria) this;
        }

        public Criteria andMaterialModelGreaterThan(String value) {
            addCriterion("material_model >", value, "materialModel");
            return (Criteria) this;
        }

        public Criteria andMaterialModelGreaterThanOrEqualTo(String value) {
            addCriterion("material_model >=", value, "materialModel");
            return (Criteria) this;
        }

        public Criteria andMaterialModelLessThan(String value) {
            addCriterion("material_model <", value, "materialModel");
            return (Criteria) this;
        }

        public Criteria andMaterialModelLessThanOrEqualTo(String value) {
            addCriterion("material_model <=", value, "materialModel");
            return (Criteria) this;
        }

        public Criteria andMaterialModelLike(String value) {
            addCriterion("material_model like", value, "materialModel");
            return (Criteria) this;
        }

        public Criteria andMaterialModelNotLike(String value) {
            addCriterion("material_model not like", value, "materialModel");
            return (Criteria) this;
        }

        public Criteria andMaterialModelIn(List<String> values) {
            addCriterion("material_model in", values, "materialModel");
            return (Criteria) this;
        }

        public Criteria andMaterialModelNotIn(List<String> values) {
            addCriterion("material_model not in", values, "materialModel");
            return (Criteria) this;
        }

        public Criteria andMaterialModelBetween(String value1, String value2) {
            addCriterion("material_model between", value1, value2, "materialModel");
            return (Criteria) this;
        }

        public Criteria andMaterialModelNotBetween(String value1, String value2) {
            addCriterion("material_model not between", value1, value2, "materialModel");
            return (Criteria) this;
        }

        public Criteria andMaterialPriceIsNull() {
            addCriterion("material_price is null");
            return (Criteria) this;
        }

        public Criteria andMaterialPriceIsNotNull() {
            addCriterion("material_price is not null");
            return (Criteria) this;
        }

        public Criteria andMaterialPriceEqualTo(Double value) {
            addCriterion("material_price =", value, "materialPrice");
            return (Criteria) this;
        }

        public Criteria andMaterialPriceNotEqualTo(Double value) {
            addCriterion("material_price <>", value, "materialPrice");
            return (Criteria) this;
        }

        public Criteria andMaterialPriceGreaterThan(Double value) {
            addCriterion("material_price >", value, "materialPrice");
            return (Criteria) this;
        }

        public Criteria andMaterialPriceGreaterThanOrEqualTo(Double value) {
            addCriterion("material_price >=", value, "materialPrice");
            return (Criteria) this;
        }

        public Criteria andMaterialPriceLessThan(Double value) {
            addCriterion("material_price <", value, "materialPrice");
            return (Criteria) this;
        }

        public Criteria andMaterialPriceLessThanOrEqualTo(Double value) {
            addCriterion("material_price <=", value, "materialPrice");
            return (Criteria) this;
        }

        public Criteria andMaterialPriceIn(List<Double> values) {
            addCriterion("material_price in", values, "materialPrice");
            return (Criteria) this;
        }

        public Criteria andMaterialPriceNotIn(List<Double> values) {
            addCriterion("material_price not in", values, "materialPrice");
            return (Criteria) this;
        }

        public Criteria andMaterialPriceBetween(Double value1, Double value2) {
            addCriterion("material_price between", value1, value2, "materialPrice");
            return (Criteria) this;
        }

        public Criteria andMaterialPriceNotBetween(Double value1, Double value2) {
            addCriterion("material_price not between", value1, value2, "materialPrice");
            return (Criteria) this;
        }

        public Criteria andMaterialImgUrlIsNull() {
            addCriterion("material_img_url is null");
            return (Criteria) this;
        }

        public Criteria andMaterialImgUrlIsNotNull() {
            addCriterion("material_img_url is not null");
            return (Criteria) this;
        }

        public Criteria andMaterialImgUrlEqualTo(String value) {
            addCriterion("material_img_url =", value, "materialImgUrl");
            return (Criteria) this;
        }

        public Criteria andMaterialImgUrlNotEqualTo(String value) {
            addCriterion("material_img_url <>", value, "materialImgUrl");
            return (Criteria) this;
        }

        public Criteria andMaterialImgUrlGreaterThan(String value) {
            addCriterion("material_img_url >", value, "materialImgUrl");
            return (Criteria) this;
        }

        public Criteria andMaterialImgUrlGreaterThanOrEqualTo(String value) {
            addCriterion("material_img_url >=", value, "materialImgUrl");
            return (Criteria) this;
        }

        public Criteria andMaterialImgUrlLessThan(String value) {
            addCriterion("material_img_url <", value, "materialImgUrl");
            return (Criteria) this;
        }

        public Criteria andMaterialImgUrlLessThanOrEqualTo(String value) {
            addCriterion("material_img_url <=", value, "materialImgUrl");
            return (Criteria) this;
        }

        public Criteria andMaterialImgUrlLike(String value) {
            addCriterion("material_img_url like", value, "materialImgUrl");
            return (Criteria) this;
        }

        public Criteria andMaterialImgUrlNotLike(String value) {
            addCriterion("material_img_url not like", value, "materialImgUrl");
            return (Criteria) this;
        }

        public Criteria andMaterialImgUrlIn(List<String> values) {
            addCriterion("material_img_url in", values, "materialImgUrl");
            return (Criteria) this;
        }

        public Criteria andMaterialImgUrlNotIn(List<String> values) {
            addCriterion("material_img_url not in", values, "materialImgUrl");
            return (Criteria) this;
        }

        public Criteria andMaterialImgUrlBetween(String value1, String value2) {
            addCriterion("material_img_url between", value1, value2, "materialImgUrl");
            return (Criteria) this;
        }

        public Criteria andMaterialImgUrlNotBetween(String value1, String value2) {
            addCriterion("material_img_url not between", value1, value2, "materialImgUrl");
            return (Criteria) this;
        }

        public Criteria andMaterialSupplierTelIsNull() {
            addCriterion("material_supplier_tel is null");
            return (Criteria) this;
        }

        public Criteria andMaterialSupplierTelIsNotNull() {
            addCriterion("material_supplier_tel is not null");
            return (Criteria) this;
        }

        public Criteria andMaterialSupplierTelEqualTo(String value) {
            addCriterion("material_supplier_tel =", value, "materialSupplierTel");
            return (Criteria) this;
        }

        public Criteria andMaterialSupplierTelNotEqualTo(String value) {
            addCriterion("material_supplier_tel <>", value, "materialSupplierTel");
            return (Criteria) this;
        }

        public Criteria andMaterialSupplierTelGreaterThan(String value) {
            addCriterion("material_supplier_tel >", value, "materialSupplierTel");
            return (Criteria) this;
        }

        public Criteria andMaterialSupplierTelGreaterThanOrEqualTo(String value) {
            addCriterion("material_supplier_tel >=", value, "materialSupplierTel");
            return (Criteria) this;
        }

        public Criteria andMaterialSupplierTelLessThan(String value) {
            addCriterion("material_supplier_tel <", value, "materialSupplierTel");
            return (Criteria) this;
        }

        public Criteria andMaterialSupplierTelLessThanOrEqualTo(String value) {
            addCriterion("material_supplier_tel <=", value, "materialSupplierTel");
            return (Criteria) this;
        }

        public Criteria andMaterialSupplierTelLike(String value) {
            addCriterion("material_supplier_tel like", value, "materialSupplierTel");
            return (Criteria) this;
        }

        public Criteria andMaterialSupplierTelNotLike(String value) {
            addCriterion("material_supplier_tel not like", value, "materialSupplierTel");
            return (Criteria) this;
        }

        public Criteria andMaterialSupplierTelIn(List<String> values) {
            addCriterion("material_supplier_tel in", values, "materialSupplierTel");
            return (Criteria) this;
        }

        public Criteria andMaterialSupplierTelNotIn(List<String> values) {
            addCriterion("material_supplier_tel not in", values, "materialSupplierTel");
            return (Criteria) this;
        }

        public Criteria andMaterialSupplierTelBetween(String value1, String value2) {
            addCriterion("material_supplier_tel between", value1, value2, "materialSupplierTel");
            return (Criteria) this;
        }

        public Criteria andMaterialSupplierTelNotBetween(String value1, String value2) {
            addCriterion("material_supplier_tel not between", value1, value2, "materialSupplierTel");
            return (Criteria) this;
        }

        public Criteria andMaterialSupplierIsNull() {
            addCriterion("material_supplier is null");
            return (Criteria) this;
        }

        public Criteria andMaterialSupplierIsNotNull() {
            addCriterion("material_supplier is not null");
            return (Criteria) this;
        }

        public Criteria andMaterialSupplierEqualTo(String value) {
            addCriterion("material_supplier =", value, "materialSupplier");
            return (Criteria) this;
        }

        public Criteria andMaterialSupplierNotEqualTo(String value) {
            addCriterion("material_supplier <>", value, "materialSupplier");
            return (Criteria) this;
        }

        public Criteria andMaterialSupplierGreaterThan(String value) {
            addCriterion("material_supplier >", value, "materialSupplier");
            return (Criteria) this;
        }

        public Criteria andMaterialSupplierGreaterThanOrEqualTo(String value) {
            addCriterion("material_supplier >=", value, "materialSupplier");
            return (Criteria) this;
        }

        public Criteria andMaterialSupplierLessThan(String value) {
            addCriterion("material_supplier <", value, "materialSupplier");
            return (Criteria) this;
        }

        public Criteria andMaterialSupplierLessThanOrEqualTo(String value) {
            addCriterion("material_supplier <=", value, "materialSupplier");
            return (Criteria) this;
        }

        public Criteria andMaterialSupplierLike(String value) {
            addCriterion("material_supplier like", value, "materialSupplier");
            return (Criteria) this;
        }

        public Criteria andMaterialSupplierNotLike(String value) {
            addCriterion("material_supplier not like", value, "materialSupplier");
            return (Criteria) this;
        }

        public Criteria andMaterialSupplierIn(List<String> values) {
            addCriterion("material_supplier in", values, "materialSupplier");
            return (Criteria) this;
        }

        public Criteria andMaterialSupplierNotIn(List<String> values) {
            addCriterion("material_supplier not in", values, "materialSupplier");
            return (Criteria) this;
        }

        public Criteria andMaterialSupplierBetween(String value1, String value2) {
            addCriterion("material_supplier between", value1, value2, "materialSupplier");
            return (Criteria) this;
        }

        public Criteria andMaterialSupplierNotBetween(String value1, String value2) {
            addCriterion("material_supplier not between", value1, value2, "materialSupplier");
            return (Criteria) this;
        }

        public Criteria andMaterialBak1IsNull() {
            addCriterion("material_bak1 is null");
            return (Criteria) this;
        }

        public Criteria andMaterialBak1IsNotNull() {
            addCriterion("material_bak1 is not null");
            return (Criteria) this;
        }

        public Criteria andMaterialBak1EqualTo(String value) {
            addCriterion("material_bak1 =", value, "materialBak1");
            return (Criteria) this;
        }

        public Criteria andMaterialBak1NotEqualTo(String value) {
            addCriterion("material_bak1 <>", value, "materialBak1");
            return (Criteria) this;
        }

        public Criteria andMaterialBak1GreaterThan(String value) {
            addCriterion("material_bak1 >", value, "materialBak1");
            return (Criteria) this;
        }

        public Criteria andMaterialBak1GreaterThanOrEqualTo(String value) {
            addCriterion("material_bak1 >=", value, "materialBak1");
            return (Criteria) this;
        }

        public Criteria andMaterialBak1LessThan(String value) {
            addCriterion("material_bak1 <", value, "materialBak1");
            return (Criteria) this;
        }

        public Criteria andMaterialBak1LessThanOrEqualTo(String value) {
            addCriterion("material_bak1 <=", value, "materialBak1");
            return (Criteria) this;
        }

        public Criteria andMaterialBak1Like(String value) {
            addCriterion("material_bak1 like", value, "materialBak1");
            return (Criteria) this;
        }

        public Criteria andMaterialBak1NotLike(String value) {
            addCriterion("material_bak1 not like", value, "materialBak1");
            return (Criteria) this;
        }

        public Criteria andMaterialBak1In(List<String> values) {
            addCriterion("material_bak1 in", values, "materialBak1");
            return (Criteria) this;
        }

        public Criteria andMaterialBak1NotIn(List<String> values) {
            addCriterion("material_bak1 not in", values, "materialBak1");
            return (Criteria) this;
        }

        public Criteria andMaterialBak1Between(String value1, String value2) {
            addCriterion("material_bak1 between", value1, value2, "materialBak1");
            return (Criteria) this;
        }

        public Criteria andMaterialBak1NotBetween(String value1, String value2) {
            addCriterion("material_bak1 not between", value1, value2, "materialBak1");
            return (Criteria) this;
        }

        public Criteria andMaterialBak2IsNull() {
            addCriterion("material_bak2 is null");
            return (Criteria) this;
        }

        public Criteria andMaterialBak2IsNotNull() {
            addCriterion("material_bak2 is not null");
            return (Criteria) this;
        }

        public Criteria andMaterialBak2EqualTo(String value) {
            addCriterion("material_bak2 =", value, "materialBak2");
            return (Criteria) this;
        }

        public Criteria andMaterialBak2NotEqualTo(String value) {
            addCriterion("material_bak2 <>", value, "materialBak2");
            return (Criteria) this;
        }

        public Criteria andMaterialBak2GreaterThan(String value) {
            addCriterion("material_bak2 >", value, "materialBak2");
            return (Criteria) this;
        }

        public Criteria andMaterialBak2GreaterThanOrEqualTo(String value) {
            addCriterion("material_bak2 >=", value, "materialBak2");
            return (Criteria) this;
        }

        public Criteria andMaterialBak2LessThan(String value) {
            addCriterion("material_bak2 <", value, "materialBak2");
            return (Criteria) this;
        }

        public Criteria andMaterialBak2LessThanOrEqualTo(String value) {
            addCriterion("material_bak2 <=", value, "materialBak2");
            return (Criteria) this;
        }

        public Criteria andMaterialBak2Like(String value) {
            addCriterion("material_bak2 like", value, "materialBak2");
            return (Criteria) this;
        }

        public Criteria andMaterialBak2NotLike(String value) {
            addCriterion("material_bak2 not like", value, "materialBak2");
            return (Criteria) this;
        }

        public Criteria andMaterialBak2In(List<String> values) {
            addCriterion("material_bak2 in", values, "materialBak2");
            return (Criteria) this;
        }

        public Criteria andMaterialBak2NotIn(List<String> values) {
            addCriterion("material_bak2 not in", values, "materialBak2");
            return (Criteria) this;
        }

        public Criteria andMaterialBak2Between(String value1, String value2) {
            addCriterion("material_bak2 between", value1, value2, "materialBak2");
            return (Criteria) this;
        }

        public Criteria andMaterialBak2NotBetween(String value1, String value2) {
            addCriterion("material_bak2 not between", value1, value2, "materialBak2");
            return (Criteria) this;
        }

        public Criteria andMaterialBak3IsNull() {
            addCriterion("material_bak3 is null");
            return (Criteria) this;
        }

        public Criteria andMaterialBak3IsNotNull() {
            addCriterion("material_bak3 is not null");
            return (Criteria) this;
        }

        public Criteria andMaterialBak3EqualTo(String value) {
            addCriterion("material_bak3 =", value, "materialBak3");
            return (Criteria) this;
        }

        public Criteria andMaterialBak3NotEqualTo(String value) {
            addCriterion("material_bak3 <>", value, "materialBak3");
            return (Criteria) this;
        }

        public Criteria andMaterialBak3GreaterThan(String value) {
            addCriterion("material_bak3 >", value, "materialBak3");
            return (Criteria) this;
        }

        public Criteria andMaterialBak3GreaterThanOrEqualTo(String value) {
            addCriterion("material_bak3 >=", value, "materialBak3");
            return (Criteria) this;
        }

        public Criteria andMaterialBak3LessThan(String value) {
            addCriterion("material_bak3 <", value, "materialBak3");
            return (Criteria) this;
        }

        public Criteria andMaterialBak3LessThanOrEqualTo(String value) {
            addCriterion("material_bak3 <=", value, "materialBak3");
            return (Criteria) this;
        }

        public Criteria andMaterialBak3Like(String value) {
            addCriterion("material_bak3 like", value, "materialBak3");
            return (Criteria) this;
        }

        public Criteria andMaterialBak3NotLike(String value) {
            addCriterion("material_bak3 not like", value, "materialBak3");
            return (Criteria) this;
        }

        public Criteria andMaterialBak3In(List<String> values) {
            addCriterion("material_bak3 in", values, "materialBak3");
            return (Criteria) this;
        }

        public Criteria andMaterialBak3NotIn(List<String> values) {
            addCriterion("material_bak3 not in", values, "materialBak3");
            return (Criteria) this;
        }

        public Criteria andMaterialBak3Between(String value1, String value2) {
            addCriterion("material_bak3 between", value1, value2, "materialBak3");
            return (Criteria) this;
        }

        public Criteria andMaterialBak3NotBetween(String value1, String value2) {
            addCriterion("material_bak3 not between", value1, value2, "materialBak3");
            return (Criteria) this;
        }
    }

    /**
     */
    public static class Criteria extends GeneratedCriteria {
        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}